泰科智能 ASCII編程詳細(xì)例子解析
ASCII編程手冊
1. 概述
這個手冊描述使用ASCII接口控制泰科智能APM, APS, APX等系列驅(qū)動器的方法,適合對運(yùn)動控制理論和操作,泰科智能驅(qū)動器及MCK軟件有一定基礎(chǔ)知識的人使用。
1.1. 泰科智能ASCII接口
泰科智能ASCII接口指的是使用一系列的指令集,通過RS232連接,來操作和監(jiān)控泰科APM, APS, APX系列的驅(qū)動器。
例如,通過MCK軟件對驅(qū)動器進(jìn)行過配置之后,可以通過ASCII接口界面進(jìn)行程序控制:
1:使能驅(qū)動器工作在編程位置控制模式
2:軸回零點(diǎn)
3:編程一系列運(yùn)動并監(jiān)控位置、速度及其他的實(shí)時變量
1.2. 通訊協(xié)議
Baud Rate | 9600到115200(上電或復(fù)位后自動設(shè)置為默認(rèn)值9600)參考波特率設(shè)置 |
Data Format | N,8,1(即無奇偶校驗(yàn),8位數(shù)據(jù)位,1位停止位) |
Flow Control | None |
1.3. 接口界面
可以通過單片機(jī)串口,或串口助手使用,界面如下(配置串口后打開串口發(fā)送命令):
<span style="font-size:14.0pt;font-family:"">2.指令集
本節(jié)列出了ASCII編程的指令集及其使用方法。
2.1. ASCII信息格式
發(fā)送ASCII數(shù)據(jù)的語法如下:
[<< span="">節(jié)點(diǎn)ID>] << span="">指令碼> [<< span="">指令參數(shù)>…] << span="">回車>
其中:
[<< span="">節(jié)點(diǎn)ID>]: 指多點(diǎn)網(wǎng)絡(luò)中某個節(jié)點(diǎn)的地址,范圍0-127,后面要跟空格。
<< span="">指令碼>: 是下面給出的指令代碼,只有一個字母,后面要跟空格,如果是復(fù)位命令則直接回車即可。
指令代碼 | 作用 |
s | 設(shè)置RAM或Flash中的一個變量值 |
g | 讀取RAM或Flash中的一個變量值 |
c | 拷貝變量:從RAM到Flash或者從Flash到RAM |
r | 復(fù)位驅(qū)動器 |
t | 軌跡生成命令(用于位置控制模式) |
i | 讀/寫程序寄存器中的值 |
[<< span="">指令參數(shù)>…: ]指明命令做什么,如何去做。如果有多個參數(shù),中間需用空格隔開。
<< span="">回車>: 回車鍵,指令結(jié)束。
變量所表代表的意義參考后面HU附錄AUH。
示例:
指令 返回值 說明
s r0x30 1200 ok 設(shè)置RAM中0x30變量(位置環(huán)比例增益)為1200,ok表示成功執(zhí)行
g r0x30 v 1200 讀取RAM中0x30變量(位置環(huán)比例增益)的值,返回值是1200
g f0x17 e 15 意圖讀取Flash中0x17變量(實(shí)際電機(jī)位置)的值。返回值e 15表示讀取的值不存在(實(shí)際電機(jī)位置只在RAM中)
若返回e << span="">錯誤號#>,請參考HHUTU錯誤代碼UTHUH中查看錯誤原因.
<span style="font-size:12.0pt;font-family:"">
2.2. 設(shè)置(s)命令
S 命令用來給可寫入的驅(qū)動器變量賦值。
S 命令的語法格式如下:
[可選節(jié)點(diǎn)ID] s << span="">存儲區(qū)><< span="">變量ID> << span="">數(shù)值>…<< span="">回車>
其中:
?[可選節(jié)點(diǎn)ID]: 是多點(diǎn)CAN網(wǎng)絡(luò)中的CAN節(jié)點(diǎn)地址。范圍是0-127. 后面要跟一個空格。
?s: 是指令代碼。后面跟一個空格
?<< span="">存儲區(qū)>: 指出設(shè)置的變量在哪個存儲區(qū)。f =flash, r = RAM
?<< span="">變量ID>: 指出要設(shè)置的變量。變量ID的格式可以是十進(jìn)制的,也可以是十六進(jìn)制的。
?<< span="">數(shù)值>: 是要設(shè)置的變量的新值。數(shù)值可以整數(shù)或者十六進(jìn)制格式發(fā)送。如果需要多個值,中間請以空格隔開。
<< span="">回車>: 回車鍵,指令結(jié)束。
發(fā)送過s命令后,驅(qū)動器會有以下返回:
? ok<< span="">回車> 表示指令被正常接收
? e << span="">錯誤號>(回車) 表示指令無法被接收。請參考HHUTU錯誤代碼UTHUH中查看錯誤原因。
s命令示例
指令 返回值 說明
s r0x30 1200 ok 設(shè)置RAM區(qū)變量0x30(位置環(huán)比例增益)為1200.返回ok表示指令被正常執(zhí)行。
s f0x30 1200 ok 設(shè)置flash區(qū)變量0x30(位置環(huán)比例增益)為1200.返回ok表示指令被正常執(zhí)行。
s r 0x30 1000 e 33 本想修改RAM區(qū)中的0x30為1200.返回33號錯誤。注意變量ID后有空格。
2.3. 獲?。?/span>g)命令
g 命令用來獲取驅(qū)動器變量的值。
g 命令的語法格式如下:
[可選節(jié)點(diǎn)ID] g << span="">存儲區(qū)><< span="">變量ID><< span="">回車>
其中:
?[可選節(jié)點(diǎn)ID]: 是多點(diǎn)CAN網(wǎng)絡(luò)中的CAN節(jié)點(diǎn)地址。范圍是0-127. 后面要跟一個空格。
?g: 是指令代碼。后面跟一個空格
?<< span="">存儲區(qū)>: 指出設(shè)置的變量在哪個存儲區(qū)。f =flash, r = RAM
?<< span="">變量ID>: 指出要獲取的變量。變量ID的格式可以是十進(jìn)制的,也可以是十六進(jìn)制的。
?<< span="">回車>: 回車鍵,指令結(jié)束。
發(fā)送過g命令后,驅(qū)動器會有以下返回:
? v [數(shù)值]<< span="">回車> 其中數(shù)值表示變量中的內(nèi)容。如果變量中包含多個數(shù)值,中間會以空格隔開。
? e << span="">錯誤號>(回車) 表示指令無法被接收。請參考HHUTU錯誤代碼UTHUH中查看錯誤原因。
g命令示例
指令 返回值 說明
g r0x30 v 1200 獲取RAM區(qū)變量0x30(位置環(huán)比例增益)的值。本例中顯示返回的值是1200。
g f0x17 e 15 意欲獲取flash中變量0x17(電機(jī)實(shí)際位置)的值。返回了15號錯誤(請求頁中不存在該變量)。注意,電機(jī)實(shí)際位置只存儲在RAM中。
2.4. 復(fù)制(c)命令
c 命令用來將一個變量的值從一個存儲區(qū)拷貝到另外一個存儲區(qū)(RAM到flash,或者flash到RAM)。
c 命令的語法格式如下:
[可選節(jié)點(diǎn)ID] c << span="">存儲區(qū)><< span="">變量ID><< span="">回車>
其中:
?[可選節(jié)點(diǎn)ID]: 是多點(diǎn)CAN網(wǎng)絡(luò)中的CAN節(jié)點(diǎn)地址。范圍是0-127. 后面要跟一個空格。
?c: 是指令代碼。后面跟一個空格
?<< span="">存儲區(qū)>: 指出設(shè)置的變量在哪個存儲區(qū)。f = flash, r = RAM
?<< span="">變量ID>: 指出要復(fù)制的變量。變量ID的格式可以是十進(jìn)制的,也可以是十六進(jìn)制的。
?<< span="">回車>: 回車鍵,指令結(jié)束。
發(fā)送過c命令后,驅(qū)動器會有以下返回:
? ok<< span="">回車> 表示指令被正常接收
? e << span="">錯誤號>(回車) 表示指令無法被接收。請參考HHUTU錯誤代碼UTHUH中查看錯誤原因。
c命令示例
指令 返回值 說明
c r0x30 ok 將變量0x30的值從RAM中拷貝到flash中。ok表示指令被正確執(zhí)行。
cf0x30 ok 將變量0x30的值從flash中拷貝到RAM中。ok表示指令被正確執(zhí)行。
2.5. 驅(qū)動器復(fù)位(r)命令
r 命令用來立即對驅(qū)動器進(jìn)行復(fù)位。該命令不需要其它參數(shù)。驅(qū)動器復(fù)位后,波特率設(shè)置為默認(rèn)值9600.
r 命令的語法格式如下:
[可選節(jié)點(diǎn)ID] r<< span="">回車>
其中:
?[可選節(jié)點(diǎn)ID]: 是多點(diǎn)CAN網(wǎng)絡(luò)中的CAN節(jié)點(diǎn)地址。范圍是0-127. 后面要跟一個空格。
?r: 是復(fù)位命令代碼。
?<< span="">回車>: 回車鍵,指令結(jié)束。
該命令發(fā)送后,驅(qū)動器不返回任何值。
r命令示例
指令 返回值 說明
r {無返回值} 驅(qū)動器被復(fù)位
注意:如果復(fù)位命令發(fā)送給了多點(diǎn)網(wǎng)絡(luò)中的一個驅(qū)動器,會收到32號錯誤代碼:“CAN Network communication failure”。這是因?yàn)樵谙蚓W(wǎng)關(guān)驅(qū)動器(連有串口線的那個)應(yīng)答前,驅(qū)動器進(jìn)行了復(fù)位。這種情況下可以直接忽略該錯誤。
2.6. 軌跡生成(t)命令
t 命令控制軌跡生成器。它可以初始化一個新的運(yùn)動,更新一個正在運(yùn)行中的運(yùn)動,或開始一個回零序列。也可以停止一個運(yùn)動的執(zhí)行。
t 命令的語法格式如下:
[可選節(jié)點(diǎn)ID] t << span="">子命令><< span="">回車>
其中:
?[可選節(jié)點(diǎn)ID]: 是多點(diǎn)CAN網(wǎng)絡(luò)中的CAN節(jié)點(diǎn)地址。范圍是0-127. 后面要跟一個空格。
?t: 是軌跡命令代碼,后面跟一個空格。
?<< span="">子命令> :0 = 停止執(zhí)行中的運(yùn)動, 1 = 初始化/更新運(yùn)動, 2 = 初始化回零序列
?<< span="">回車>:回車符,緊跟在子命令后,表示指令結(jié)束。
發(fā)送過t命令后,驅(qū)動器會有以下返回:
? ok<< span="">回車> 表示指令被正常接收。注意ok僅表示命令被驅(qū)動器接收。請查看軌跡狀態(tài)寄存器,確認(rèn)運(yùn)動確實(shí)被初始化了。
? e << span="">錯誤號>(回車) 表示指令無法被接收。請參考HHUTU錯誤代碼UTHUH中查看錯誤原因。
t命令示例
指令 返回值 說明
t 1 ok 初始化一個運(yùn)動。
t2 e 33 本想初始化一個回零序列。返回了33號錯誤(ASCII命令語法錯誤)。注意命令和子命令之間沒有空格。
2.6. 寄存器讀寫(t)命令
寄存器命令(i)用來讀寫CVM程序中的32個內(nèi)部寄存器。
i 命令的語法格式如下:
[可選節(jié)點(diǎn)ID] i
其中:
?[可選節(jié)點(diǎn)ID]: 是多點(diǎn)CAN網(wǎng)絡(luò)中的CAN節(jié)點(diǎn)地址。范圍是0-127. 后面要跟一個空格。
?i: 是寄存器命令代碼。后面跟一個空格。
?
?<< span="">數(shù)值>: 是要寫進(jìn)寄存器中的新值。如果命令中沒有此項(xiàng),就表示要讀取寄存器中的值。數(shù)值可以整型或十六進(jìn)制格式發(fā)送。
?<< span="">回車>: 回車符,緊跟在寄存器號之后或者數(shù)值之后,表示指令結(jié)束。
發(fā)送過i命令后,驅(qū)動器會有以下返回:
? ok<< span="">回車> 表示指令被正常接收,并且數(shù)值已經(jīng)被寫入到寄存器中。
? r [數(shù)值]<< span="">回車> 其中數(shù)值就是寄存器中的內(nèi)容。
? e << span="">錯誤號>(回車) 表示指令無法被接收。請參考HHUTU錯誤代碼UTHUH中查看錯誤原因。
i命令示例
指令 返回值 說明
i r0 15 ok 向第一個寄存器(寄存器0)中寫入15
i r0 r15 讀第一個寄存器中的值。示例顯示返回的是15
8 i r0 r 35 讀CAN網(wǎng)絡(luò)中節(jié)點(diǎn)號為8的驅(qū)動器中寄存器0的值。示例顯示返回值是35
2.8. 多軸驅(qū)動器ASCII信息格式
一些驅(qū)動器可以支持多達(dá)三個軸的運(yùn)動。當(dāng)向驅(qū)動不止一個軸的驅(qū)動器發(fā)送ASCII命令是,必須按以下格式指出設(shè)置的軸:
[<< span="">可選節(jié)點(diǎn)>].<< span="">軸號> << span="">命令代碼> [<< span="">命令參數(shù)>…]<< span="">回車>
其中:
?[可選節(jié)點(diǎn)ID]: 是多點(diǎn)CAN網(wǎng)絡(luò)中的CAN節(jié)點(diǎn)地址。范圍是0-127。后面緊跟小數(shù)點(diǎn)和軸號
?<< span="">軸號>: 指出是哪個軸(a,b,還是c)。軸號前面是一個小數(shù)點(diǎn),后面有一個空格。
?<< span="">命令代碼>: 單個字母的命令代碼。和上述一樣,可以是s,g, c, r, t, i.
?<< span="">命令參數(shù)>: 指出命令要做什么,怎么做。如果需要多個參數(shù),中間請以空格隔開。
?<< span="">回車>: 回車鍵,指令結(jié)束。
多軸示例
指令 返回值 說明
.b g r0x32 v1200 獲取b軸上RAM中0x32變量(電機(jī)實(shí)際位置)的值。示例返回1200
2.c g r0x32 v1200 獲取2號節(jié)點(diǎn)上的c軸RAM中0x32變量(電機(jī)實(shí)際位置)的值。
3. 控制環(huán)工作模式
工作模式由一個狀態(tài)變量(0x24)定義,賦予不同的值定義不同的工作模式,描述如下:
值 | 狀態(tài) |
0 | 未配置 |
1 | 電流環(huán)由編程電流值驅(qū)動 |
2 | 電流環(huán)由模擬輸入值驅(qū)動 |
3 | 電流環(huán)由脈沖 方向輸入驅(qū)動 |
4 | 電流環(huán)由內(nèi)部的函數(shù)生產(chǎn)器驅(qū)動 |
5 | 電流環(huán)由通過PWM輸入的UV命令驅(qū)動 |
11 | 速度環(huán)由編程的速度值驅(qū)動 |
12 | 速度環(huán)由模擬輸入值驅(qū)動 |
13 | 速度環(huán)由脈沖 方向輸入驅(qū)動 |
14 | 速度環(huán)由內(nèi)部的函數(shù)生產(chǎn)器驅(qū)動 |
21 | 伺服模式下,位置環(huán)由軌跡生成器驅(qū)動 |
22 | 伺服模式下,位置環(huán)由模擬輸入量驅(qū)動 |
23 | 伺服模式下,位置環(huán)由數(shù)字輸入(脈沖 方向,主編碼器等)驅(qū)動 |
24 | 伺服模式下,位置環(huán)由內(nèi)部函數(shù)生成器驅(qū)動 |
25 | 伺服模式下,位置環(huán)由凸輪函數(shù)驅(qū)動 |
30 | 伺服模式下,位置環(huán)由CANopen接口驅(qū)動 |
31 | 微步模式下,位置環(huán)由軌跡生成器驅(qū)動 |
33 | 微步模式下,位置環(huán)由數(shù)字輸入(脈沖 方向,主編碼器等)驅(qū)動 |
34 | 微步模式下,位置環(huán)由內(nèi)部函數(shù)生成器驅(qū)動 |
35 | 微步模式下,位置環(huán)由凸輪函數(shù)驅(qū)動 |
40 | 微步模式下,位置環(huán)由CANopen接口驅(qū)動 |
42 | 微步診斷模式,電流環(huán)由編程的電流值驅(qū)動,相角微步執(zhí)行 |
3.1. 電流控制模式
/電流模式
設(shè)置驅(qū)動器工作在電流模式下,相關(guān)的變量說明如下(R-RAM, F-Flash):
變量 | 所在存儲區(qū) | 描述 |
0x24 | R F | 0- 停止(Disable) 1- 編程電流換控制模式 |
0x02 | R F | 編程的電流值。單位:0.01A |
0x6a | R F | 電流上升斜率。單位:mA/Sec 若賦值為0則會產(chǎn)生階躍跳變 |
注意:驅(qū)動器使能情況下,若要改變電流值及斜率,請先設(shè)置斜率。
示例:
期望驅(qū)動器工作在電流控制模式,電流增加速率為0.5秒內(nèi)增加到2A。觀察電流值,當(dāng)電流到達(dá)2A后修改輸出控制電流在2秒內(nèi)減小到1A。
指令 返回值 說明
s r0x6a 4000 ok 電流增加速率4A/Sec
s r0x02 200 ok 設(shè)置期望電流為2A
s r0x24 1 ok 啟動電流控制模式,輸出電流以4A/Sec速度增加
用以下命令觀察實(shí)際輸出電流值
g r0x0c v 150 通過驅(qū)動器讀取實(shí)際電流值,該處顯示的是1.5A
當(dāng)電流到達(dá)2A時,改變電流速率及期望值
s r0x6a 500 ok 修改電流速率為0.5A/Sec
s r0x02 100 ok 修改給定值為1A,電流將以0.5A/Sec的速率減小
停止驅(qū)動器控制
s r0x24 0 ok Disable驅(qū)動器
3.1.3. PWM控制速度模式
該模式下,輸出電流和輸入的PWM的占空比成比例關(guān)系。多數(shù)的應(yīng)用中PWM輸入的設(shè)置都是通過TSM2軟件來實(shí)現(xiàn)的,并且運(yùn)行過程中不做修改。
相關(guān)的變量說明如下:
變量 | 存儲區(qū) | 描述 |
0x24 | R F | 0 -停止 3-PWM控制電流模式 |
0xa9 | R F | 比例因數(shù):100%占空比對應(yīng)的電流值。單位:0.01A |
0xa8 | R F | PWM輸入設(shè)置(通常由TSM2軟件設(shè)置)。具體參考表1-1 |
注意:在PWM輸入控制電流和速度模式中都使用了0xa9和0xa8變量,在改變模式時請確認(rèn)這些值是正確的。
表1-1
PWM輸入類型 | PWM輸入反轉(zhuǎn) | 符號輸入反轉(zhuǎn) | 允許100%輸出 | 值 |
50% | No | -- | No | 0x00 |
50% | No | -- | Yes | 0x08 |
50% | Yes | -- | No | 0x02 |
50% | Yes | -- | Yes | 0x0a |
100% | No | No | No | 0x01 |
100% | No | No | Yes | 0x09 |
100% | No | Yes | No | 0x05 |
100% | No | Yes | Yes | 0x0d |
100% | Yes | No | No | 0x03 |
100% | Yes | No | Yes | 0x0b |
100% | Yes | Yes | No | 0x07 |
3.2. 速度控制模式
3.2.2. 模擬量控制速度模式
該模式下,速度輸出與模擬輸入電壓成比例關(guān)系。
相關(guān)的變量說明如下:
變量 | 存儲區(qū) | 描述 |
0x24 | R F | 0-停止 12-模擬量控制速度模式 |
0x19 | R F | 比例因數(shù):10V模擬電壓對應(yīng)速度值。單位:0.1counts/s |
0x26 | R F | 模擬輸入死區(qū)。單位:mV |
0x1a | R F | 模擬輸入偏移量。 單位:mV |
0x36 | R F | 加速度限制。單位:1000counts/SecondP2P |
0x37 | R F | 減速度限制。單位:1000counts/SecondP2P |
0x39 | R F | 急速停止速率。單位:1000counts/SecondP2P |
注意:位置、速度和電流模式下都會用到0x19,0x26, 0x1a變量,在這些模式之間切換工作是請先確認(rèn)這些值是正確的。
3.3.1. 位置控制模式下軌跡變量更新
當(dāng)驅(qū)動器進(jìn)入位置控制模式時,軌跡變量(速度、加速度和減速度)會被拷貝到軌跡生成器中。設(shè)置位置控制模式后,若要改變其中的任一個的值,需要在發(fā)送新的值后再發(fā)一個t 1命令。
3.3.3. 模擬量位置控制模式
該模式下,軸的位置由外部輸入的模擬量來決定。
模擬位置命令按相對運(yùn)動命令來執(zhí)行。使能驅(qū)動器就會讀取模擬電壓值。電壓的任何改變都會改變軸的相對位移,等價于使能后從那點(diǎn)開始的電壓的改變量。要使用絕對位置,則每次驅(qū)動器使能時都要執(zhí)行回初始點(diǎn)的操作。
相關(guān)的變量說明如下:
變量 | 存儲區(qū) | 描述 |
0x24 | R F | 0 -停止 22-模擬量位置控制模式 |
0x19 | R F | 比例因數(shù):10V電壓輸入對應(yīng)的位置。單位:counts |
0x26 | R F | 死區(qū)。單位:mV |
0x1a | R F | 模擬輸入偏移量。該模式下請?jiān)O(shè)置為0 |
0xcb | R F | 最大速度。單位:0.1counts/second |
0xcc | R F | 最大加速度。單位:10counts/secondP2P |
0xcd | R F | 最大減速度。單位:10counts/secondP2P |
0xcf | R F | 急速停止速度。單位:10counts/secondP2P |
注意:
1)位置、速度和電流模式下都會用到0x19,0x26, 0x1a變量,在這些模式之間切換工作時請先確認(rèn)這些值是正確的。2)要想改變模擬量對應(yīng)的方向,可以將比例因數(shù)設(shè)為負(fù)值。
&方向位置控制模式
該模式下,位置指令由一個數(shù)字端口的脈沖數(shù)給定,方向由另一個數(shù)字輸入端口的邏輯電平?jīng)Q定。
比例因數(shù)設(shè)置每個輸入脈沖所對應(yīng)的位置指令的系數(shù),單位是脈沖數(shù)counts。該系數(shù)以兩個16位字的形式存放在變量0xa9中,第一個字是分子(位置脈沖數(shù)),第二個字是分母(輸入脈沖數(shù))。例如,要實(shí)現(xiàn)一個外部脈沖輸入對應(yīng)10個位置脈沖的話,系數(shù)就應(yīng)該設(shè)置為10/1。為便于發(fā)送,需將它們轉(zhuǎn)換成十六進(jìn)制格式,這樣系數(shù)應(yīng)該是0x000a / 0x0001。最后結(jié)合指令代碼到一起發(fā)送給驅(qū)動器:s r0xa9 0x000a0001.
要改變方向,請將分子改成負(fù)值。但是注意負(fù)數(shù)的十六進(jìn)制表達(dá)方式。例如將上面的例子的方向改變的話,系數(shù)是-10/1,換成十六進(jìn)制,-10是0xfff6,發(fā)送的指令就變成了
S r0xa9 0xfff60001.
相關(guān)的變量說明如下:
變量 | 存儲區(qū) | 描述 |
0x24 | R F | 0 -停止 23-數(shù)字輸入位置模式-伺服電機(jī) 33-數(shù)字輸入位置模式-步進(jìn)電機(jī) |
0xa8 | R F | 數(shù)字命令設(shè)置 脈沖 方向 0 = 上升沿增加位置 4096 = 下降沿增加位置 |
0xa9 | R F | 比例因數(shù):輸出脈沖/輸入脈沖數(shù) |
0xcb | R F | 最大速度。單位:0.1counts/second |
0xcc | R F | 最大加速度。單位:10counts/secondP2P |
0xcd | R F | 最大減速度。單位:10counts/secondP2P |
0xcf | R F | 急速停止速度。單位:10counts/secondP2P |
3.4. 參數(shù)限制及增益
變量0x90(僅位于RAM中)控制驅(qū)動器串口的波特率。若要改變波特率,只需向該變量中寫入一個新值。例如要將波特率由9600改成115200,發(fā)送命令s r0x90 115200, 如果返回值是ok,表示修改成功,但是該返回值是按新的波特率115200通訊的。
一旦輸入回車之后,就不能再以9600的波特率發(fā)送命令了。如果還以9600發(fā)送命令,就有可能被驅(qū)動器誤以為是一個波特率復(fù)位命令,從而導(dǎo)致波特率從新被調(diào)回到9600. 此外,設(shè)置過新的波特率后,至少要間隔100毫秒的時間才可以開始以新的波特率跟驅(qū)動器通訊。
在讀0x90變量的值時,注意讀出來的值和設(shè)置的值可能并不完全一樣。這是因?yàn)轵?qū)動器根據(jù)內(nèi)部微處理器的時鐘頻率將波特率調(diào)整到了和設(shè)定值接近的一個值了。
3.4.2. 設(shè)置電流環(huán)限制和增益
速度環(huán)限制變量:
變量ID | 存儲區(qū) | 描述 |
0x3a | R F | 速度環(huán)速度限制。單位:0.01counts/second |
0x36 | R F | 速度環(huán)加速度限制。單位:1000counts/secondP2P |
0x37 | R F | 速度環(huán)減速度限制。單位:1000counts/secondP2P |
0xcf | R F | 急停速率。單位:10counts/secondP2P |
速度環(huán)增益變量:
0x27 | R F | 速度環(huán)比例增益(Vp) |
0x28 | R F | 速度環(huán)積分增益(Vi) |
3.4.3. 設(shè)置速度環(huán)限制和增益
位置環(huán)各參數(shù)的限制請參考第三章中編程位置控制模式。
位置環(huán)增益變量:
變量ID | 存儲區(qū) | 描述 |
0x30 | R F | Pp – 位置環(huán)比例增益 |
0x33 | R F | Vff – 速度前饋 |
0x34 | R F | Aff – 加速度前饋 |
0xe3 | R F | 位置環(huán)增益乘法器。100等價于1個因子 |
3.4.5. 監(jiān)控狀態(tài)
狀態(tài)寄存器變量(0xa0):
該變量提供了驅(qū)動器的狀態(tài)信息。0xa0是只讀的,并且只在RAM中。各位代表的意義如下:
位 | 意義 |
0 | 短路 |
1 | 驅(qū)動器過溫 |
2 | 過壓 |
3 | 欠壓 |
4 | 電機(jī)溫度傳感器有效 |
5 | 反饋錯誤 |
6 | 電機(jī)相位錯誤 |
7 | 電流輸出受限 |
8 | 電壓輸出受限 |
9 | 正限位開關(guān)有效 |
10 | 負(fù)限位開關(guān)有效 |
11 | 使能輸入無效 |
12 | 軟件禁用驅(qū)動器 |
13 | 正在停止電機(jī) |
14 | 電機(jī)制動有效 |
15 | PWM輸出無效 |
16 | 正向軟件限位條件 |
17 | 反向軟件限位條件 |
18 | 跟隨錯誤 |
19 | 跟隨警告 |
20 | 驅(qū)動器復(fù)位 |
21 | 位置回轉(zhuǎn)。位置變量不可能無限增加。當(dāng)達(dá)到一定值之后就會回來,這種計(jì)數(shù)方式稱作位置回轉(zhuǎn)或取模計(jì)數(shù)。該位只在位置回轉(zhuǎn)時有效 |
22 | 驅(qū)動器錯誤。發(fā)生了配置成鎖定的驅(qū)動器錯誤。關(guān)于鎖定錯誤的更多信息,請參考TSM2用戶指導(dǎo)手冊。 |
23 | 達(dá)到了速度上限值 |
24 | 達(dá)到了加速度上限值 |
25 | 位置超出了跟隨窗口 |
26 | 回初始點(diǎn)開關(guān)有效 |
27 | 運(yùn)動之末電機(jī)還未達(dá)到指定位置。 |
28 | 速度窗口。當(dāng)絕對速度誤差超過速度窗口值時置位 |
29 | 相位沒有初始化。如果沒有霍爾,驅(qū)動器初始化相位前該位一直有效 |
30 | 命令錯誤。PWM或其它命令信號有誤 |
31 | 未定義 |
錯誤寄存器變量(0xa4):
錯誤寄存器變量顯示了已發(fā)生的鎖定錯誤。0xa4只存在RAM中。各位所代表的意義如下:
位 | 錯誤描述 |
0 | CRC失敗。該錯誤很重要不能清除 |
1 | 驅(qū)動器內(nèi)部錯誤。該錯誤很重要不能清除 |
2 | 短路 |
3 | 驅(qū)動器過溫 |
4 | 電機(jī)過溫 |
5 | 過壓 |
6 | 欠壓 |
7 | 反饋錯誤 |
8 | 相位錯誤 |
9 | 跟隨錯誤 |
10 | 過流 |
11 | FPGA錯誤。該錯誤很重要不能清除。如果下載固件時發(fā)生該錯誤,重新下載可能會清除該錯誤 |
12 | 輸入命令丟失 |
13-31 | 保留 |
注意:鎖定的錯誤發(fā)生時,狀態(tài)寄存器(0xa0)會置位。要清除錯誤,可以向相應(yīng)的錯誤寄存器(0xa4)中寫1。
3.4.7. 讀數(shù)字輸入
輸入狀態(tài)變量(0xa6):
可以通過0xa6變量讀取驅(qū)動器可編程數(shù)字輸入的高低電平狀態(tài)。每個位所對應(yīng)的輸入號如下表所示。如果該端口是高電平,則相應(yīng)的位置1,低電平則置0.
例如,如果讀到的0xa6的值是33,轉(zhuǎn)換成二進(jìn)制是100001,由此可知IN1和IN6是高電平,其它輸入口是低電平。
0xa6是只讀的,并且只在RAM中。各位映射值如下所示。
注意:不同的驅(qū)動器,其可編程數(shù)字輸入號是不同的。具體請參考相應(yīng)文檔。
位 | 輸入 |
0 | 數(shù)字輸入口1 |
1 | 數(shù)字輸入口2 |
2 | 數(shù)字輸入口3 |
3 | 數(shù)字輸入口4 |
4 | 數(shù)字輸入口5 |
5 | 數(shù)字輸入口6 |
6 | 數(shù)字輸入口7 |
7 | 數(shù)字輸入口8 |
8 | 數(shù)字輸入口9 |
9 | 數(shù)字輸入口10 |
10 | 數(shù)字輸入口11 |
11 | 數(shù)字輸入口12 |
12 | 數(shù)字輸入口13 |
13 | 數(shù)字輸入口14 |
14 | 數(shù)字輸入口15 |
15 | 數(shù)字輸入口16 |
3.4.8. 讀 --- 會報(bào)這種錯誤的例子 3 未知命令代碼i, r, s, g等命令 命令提供的數(shù)據(jù)過多 ID --- 如10 數(shù)據(jù)值超出范圍 14 未知軸狀態(tài)情況 --- 如flash上 19 運(yùn)動速度限制非法 21 運(yùn)動減速度限制非法 jerk限制非法 27 ASCII發(fā)命令 ID號 CAN網(wǎng)絡(luò)通信失敗 --- 如<span style="font-size:10.0pt;font-family:"">g t0x18 or g r 0x18 or g r
提交
泰科智能 直線-力矩-音圈直驅(qū)伺服系統(tǒng)
泰科智能 帶抱閘脈沖型閉環(huán)步進(jìn)伺服系統(tǒng)
伺服電機(jī)的工作原理與特點(diǎn)
泰科智能 直線電機(jī)及平臺
直線伺服電動機(jī)及其應(yīng)用